package Maven高级.继承与聚合.继承关系实现;

/**
 * 继承<p>
 * 概念：继承描述的是两个工程间的关系，与java中的继承相似，子工程可以继承父工程中的配置信息，常见于依赖关系的继承<p>
 * 详见项目springboot-study-auxiliary-system-module-separate
 */
public class index {
    /**
     * 在Java的类中，是支持继承的<p>
     * 而在maven中，项目与项目之间，也是支持继承的<p></p>
     * <p>
     * 继承的作用：<p>
     * 整个项目的多个模块中，有可能同时引入同一个依赖项<p>
     * 这就需要在每个项目中都写一遍重复的依赖配置<p>
     * 当这些重复依赖的数量很多时，就会造成操作繁琐<p>
     * 而通过maven的继承就可以解决这个问题<p></p>
     * <p>
     * 我们可以创建一个父工程<p>
     * 然后就可以让模块来继承这个父工程，就不需要进行重复配置了<p></p>
     * <p>
     * 继承的作用就是为了简化依赖配置、统一管理依赖<p></p>
     * <p>
     * 继承的实现：<p>
     * 可以在各个子工程中通过标签 {@code <parent></parent>} 来实现<p>
     * parent标签中要指定的就是父工程的坐标<p></p>
     * <p>
     * 注意：父工程的打包方式必须为pom<p></p>
     * <p>
     * maven中常见的打包方式及其区别：<p>
     * jar：普通模块打包，springboot项目基本都是jar包（内嵌tomcat运行）<p>
     * war：普通web程序打包，需要部署在外部的tomcat服务器中运行<p>
     * pom：父工程或聚合工程，该模块不写代码，只进行依赖管理<p></p>
     * <p>
     * 在maven中，一个子工程只能继承一个父工程<p>
     * 所以对于springboot项目（所有的springboot项目都需要继承spring-boot-starter-parent工程），我们可以使用多重继承的方式<p>
     * 多重继承：A继承B，B继承C，所以A也继承C<p></p>
     * <p>
     * 如果父工程和子工程中配置类同一依赖的不同版本，以子工程的为准<p>
     *
     * @param args
     */
    public static void main(String[] args) {

    }
}
